home *** CD-ROM | disk | FTP | other *** search
- /* 93/12/28 aih split out of CommonLib.h */
-
- /* Product release levels. The release level determines how much debug code
- is compiled and what compiler optimizations are enabled. */
- #define RELEASE_DEV (1) /* all of debug code, no optimization */
- #define RELEASE_ALPHA (2) /* less debug code, some optimization */
- #define RELEASE_BETA (3) /* even less debug code, more optimization */
- #define RELEASE_FINAL (4) /* no debug code, full optimization */
-
- /* profiling is disabled by default */
- #ifndef PROFILE
- #if defined(THINK_C) && __option(profile)
- #define PROFILE (1)
- #else
- #define PROFILE (0)
- #endif
- #endif
-
- /* need far data when profiling */
- #if PROFILE
- #if defined(THINK_C) && ! __option(far_data)
- #error enable Far Data option in the "Set Project Type..." dialog
- #endif
- #endif
-
- /* default to development version */
- #ifndef RELEASE_LEVEL
- #define RELEASE_LEVEL RELEASE_DEV
- #endif
-
- /* disable assertions for beta release or later */
- #if RELEASE_LEVEL >= RELEASE_BETA
- #define ASSERT_REQUIRE (0)
- #define ASSERT_CHECK (0)
- #define ASSERT_ENSURE (0)
- #endif
-
- /* disable all debug code for final release */
- #if RELEASE_LEVEL >= RELEASE_FINAL && ! defined(NDEBUG)
- #define NDEBUG (1)
- #endif
-
- #ifdef THINK_C
- /* set compiler options */
- /* we need stack frames so segment unloading will work */
- #pragma options(force_frame)
- #if RELEASE_LEVEL == RELEASE_DEV
- #pragma options(long_macsbug_names, ! global_optimizer)
- #pragma options(! defer_adjust, ! redundant_loads)
- #elif RELEASE_LEVEL == RELEASE_ALPHA
- #pragma options(long_macsbug_names, ! global_optimizer)
- #pragma options(defer_adjust, redundant_loads)
- #pragma options(honor_register, assign_registers)
- #elif RELEASE_LEVEL == RELEASE_BETA
- #pragma options(long_macsbug_names)
- #pragma options(global_optimizer)
- #pragma options(gopt_induction, gopt_cse, gopt_loop, gopt_coloring)
- #pragma options(defer_adjust, redundant_loads)
- #pragma options(honor_register, assign_registers)
- #else /* RELEASE_FINAL */
- #pragma options(! macsbug_names, ! long_macsbug_names)
- #pragma options(global_optimizer)
- #pragma options(gopt_induction, gopt_cse, gopt_loop, gopt_coloring)
- #pragma options(defer_adjust, redundant_loads)
- #pragma options(honor_register, assign_registers)
- #endif /* RELEASE_LEVEL */
- #endif /* THINK_C */
-